// 选择排序
// 考虑用函数写交换两数的部分
// 考虑用指针代替 min_index
#include <stdio.h>
#include "../0_module/base_function.h" // 自定义模块（头文件）导入（不能包含重名函数！）

// 【函数】利用数组下标进行排序
int *selection_sort_by_index(int FP_array[], int n)
{
    int i, j;
    int min_index; // 最小数的下标

    for (i = 0; i < n - 1; i++)
    {
        min_index = i;
        for (j = i + 1; j < n; j++)
        {
            if (FP_array[min_index] > FP_array[j]) // 思路卡住的一步，a[i]<a[j]只能比较一个数字
            {
                min_index = j;
            }
        }
        if (min_index != 0)
        {
            exchange(&FP_array[i], &FP_array[min_index]);
        }
    }
    return FP_array;
}

// 【函数】利用指针进行排序
int sorting_by_point(int a[10])
{
}

// 主函数
int main()
{
    int a[] = {3, 6, 4, 9, 5, 2, 0, 8, 7, 1};
    int n = sizeof(a) / 4;
    int *a_sorted;

    hello(); // 导入测试

    // 显示未排序的数组
    display_array(a);

    // 排序
    a_sorted = selection_sort_by_index(a, n);

    // 显示排序后的数组
    printf("\n");
    display_array(a_sorted);

    return 0;
}
